#ifndef _UIMESSAGELOOPIMPL_H_
#define _UIMESSAGELOOPIMPL_H_

#include "stdafx.h"

class CUiMessageloopImpl : public IUIMessageLoop, public CUnknownImp
{
public:
    CUiMessageloopImpl(void);
    virtual ~CUiMessageloopImpl(void);

public:
    BEGIN_STDCOM_MAP
    STDCOM_INTERFACE_ENTRY(IUIMessageLoop)
    STDCOM_INTERFACE_ENTRY_UNKNOWN_(IUIMessageLoop)
    END_STDCOM_MAP

    // IUiMessageLoop
    std_method(Add)(IUIWindow* pBase);
    std_method(Del)(IUIWindow* pBase);
    std_method_(int, MessageLoop)();
    std_method_(int, PushMessage)(const NotifyEvent* event);

private:
    typedef vector<IUIWindow*> VectorUiWindowPtr;
    typedef vector<IUIWindow*>::iterator VectorUiWindowItemPtr;
    VectorUiWindowPtr m_pVecMessageLoop;
};

#endif
